A "Solution" packages customizations and components that work together to provide functionality.
Benefits of solutions: Focus on specific components, tie solutions to requirements, export/import (zip files), use to install/uninstall functionality, publisher can be identified, easier change control.
Solution fields: Name, Description, Date created/updated, Date installed, Publisher, Is Managed, Version
Version field: consists of four numbers: major.minor.build.revision
Some other ways to specify version: 1.0.0.14089 ("14" = year and "089" = day of the year); 2014.03.25.01 (year month day and release for the day)
Publisher: Publisher’s name and component prefix (up to 8 chars). Option Value Prefix sets default picklist item integer value.
"Default Solution": The base solution, created when installing CRM.
Solutions can contain the following components, which you can add or remove (last updated 8/11/2017):
App
Application Ribbon
Article Template
Business Rule
Chart
Client Extension
Connection Role
Contract Template
Dashboard
Email Template
Entity
Entity Relationship
Field
Field Security Profile
Form
Mail Merge Template
Message
Mobile Offline Profile
Option Set
Plug-in Assembly
Process
Record Creation and Update Rule
Report
Routing Rule Set
Sdk Message Processing Step
Security Role (for root Business Unit only)
Service Endpoint
Site Map
SLA
Views
Web Resource
Solutions cannot contain users, teams, business units, queues, goals, security roles for other business units, subjects, products (and related), reports deployed directly to SSRS, entity data.
Unmanaged solutions only reference components; if you delete an unmanaged solution CRM only removes this solution "wrapper" around components.
Managed solutions: Can be uninstalled after it is imported; To create a managed solution, choose the "managed solution" option when exporting the solution.
When creating a managed solution that includes entities, the export process compares the original entity definition (fields, form, views, etc.) and only includes what's different. If there are elements that you don't want to import into the target CRM organization when importing the managed solution, you can remove unwanted nodes from the customizations xml and update the managed solution zip file before distributing/importing the managed solution.
Unmanaged vs. Managed solutions: Determined during export; For internal changes (system to system), usually use Unmanaged. Solutions for sale (ISV) are typically exported as Managed. Imported unmanaged solution components become meshed with the Default Solution but for Managed the components/changes are kept separate.
Plugins (plug-ins): During import, CRM will not remove existing Sdk Message Processing Steps that are already in place for an plug-in assembly. Example: In production you have assembly Mycorp.Plugins with 10 steps registered. In a dev environment, you add a plug-in (class) and two new steps in the same assembly and add the assembly and the news steps to a new solution. You then import that solution into production. You will now have 12 Sdk Message Processing Steps registered for the plug-in assembly. CRM will not remove the previously-registered steps.
Importing:
When you import an unmanaged solution, all customizations/configuration are added to CRM or overwrite existing customizations/configuration. Be sure that you know (and verify) the contents of the solution.
You cannot import a solution if the target environment’s major or minor version numbers are below the solution’s source environment.
Importing a default solution from on-premises to Online (and vice-versa) is not supported. Custom solutions are ok, just not default solutions.
Solutions never delete anything but importing an unmanaged solution can overwrite existing components.
You must have the system admin security role in order to import a solution that contains security roles, organization settings, sdk message processing steps and plug-in assemblies.
All imported security roles will be attached to the root business unit.
If you don’t add required components to a solution, the target environment must have those required components when importing.
Exporting:
You should export the default solution periodically to make a backup of the organization's customizations. You can only export the default solution as unmanaged.
To create a managed solution, you choose the managed solution option when you export the solution. If you create a managed solution, you can’t import it back into the same organization you used to create it. You can only import it into a different organization.
CRM does not include unpublished customizations in an exported solution.
Update the version number when exporting a solution. The version number is added to the solution file's file name (zip file).
How solutions are applied
All solutions are evaluated as layers to determine what your CRM application will actually do. The following diagram shows how managed and unmanaged solutions are evaluated and how changes in them will appear in your organization.
How solutions are applied
All solutions are evaluated as layers to determine what your CRM application will actually do. The following diagram shows how managed and unmanaged solutions are evaluated and how changes in them will appear in your organization.Information to add to this page (TODO)